package top.lyjwn.todo.security;

public interface LoginToken {

    /**
     * 创建token
     *
     * @param login
     * @return
     */
    String buildToken(Login login);

    /**
     * 延期token
     *
     * @param token
     */
    void postpone(String token);

    /**
     * 刷新用户 token
     *
     * @param login
     */
    void refreshUserToken(Login login);

    /**
     * 用户退出登陆
     *
     * @param token
     */
    void loginOff(String token);

    /**
     * 用户退出登陆
     */
    void loginOff();

    /**
     * 获取登录信息
     *
     * @param token
     * @return loginJson
     */
    Login getLoginByToken(String token);

    /**
     * 获取登录信息
     *
     * @return
     */
    Login getLogin();

    /**
     * 验证token
     *
     * @param token
     * @return
     */
    boolean verify(String token);


}

